主题
发送字符串 - SendString
函数简介
向指定窗口发送文本数据(UTF-8)。不会自动打开输入法,避免部分程序因切换布局/IME 而卡死。
优先对 Edit/RichEdit 使用 EM_REPLACESEL 整串插入;其它窗口按字符投递 WM_IME_CHAR(Unicode 窗走 *W,ANSI 窗走 GBK + *A)。
若目标必须打开中文输入法才能正常输入,请改用 SendString2。
接口名称
SendStringDLL调用
int SendString(long ola, long hwnd, string str);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ola | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| hwnd | 长整数型 | 目标窗口句柄。为 0 时使用当前 绑定窗口。 |
| str | 字符串 | 要发送的文本数据(UTF-8)。 |
示例
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int ret = ola.SendString(hwnd, "value");csharp
using OLAPlug;
var ola = new OLAPlugServer();
int ret = ola.SendString(hwnd, "value");python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
ret = ola.SendString(hwnd, "value")java
import com.olaplug.OLAPlugServer;
OLAPlugServer ola = new OLAPlugServer();
int ret = ola.SendString(hwnd, "value");go
import "github.com/ola/olaplug/olaplug"
ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
ret := ola.SendString(hwnd, "value")rust
use olaplug::OLAPlugServer;
let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let ret = ola.send_string(&hwnd, "value");cpp
var ola = com("OlaPlug.OlaSoft")
var ret = ola.SendString(hwnd, "value")vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
ret = ola.SendString(hwnd, "value")text
.局部变量 ola, OLAPlug
ola.创建 ()
ret = ola.SendString(hwnd, “value”)aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var ret = ola.SendString(hwnd, "value");text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
整数 ret = ola.SendString(hwnd, "value")cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int32_t ret = ola.SendString(hwnd, "value");原生 DLL 调用
cpp
long instance = CreateCOLAPlugInterFace();
SendString(instance, hwnd, "value");csharp
using System.Runtime.InteropServices;
using System.Text;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int SendString(long ola, long hwnd, string str);
long instance = CreateCOLAPlugInterFace();
SendString(instance, hwnd, "value");python
from ctypes import CDLL, c_int, c_int64, create_string_buffer
ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
ola.SendString(instance, hwnd, "value")返回值
| 返回值 | 说明 |
|---|---|
1 | 成功。 |
0 | 失败。 |
注意事项
| 项目 | 说明 |
|---|---|
| 输入法 | 不自动打开 IME / 切换中文布局。多数窗口可直接输入中文。 |
| 与 SendString2 | SendString2 会在发送前强制打开输入法,部分程序可能卡死,仅在确有需要时使用。 |
| 与 SendStringEx | SendStringEx 从内存地址读取指定编码字符串再发送。 |
| 粘贴替代 | 也可先 SetClipboard 再调用 SendPaste / SendPaste2 / SendPaste3。 |
